#ifndef DEBUGRENDERER_H
#define DEBUGRENDERER_H

#include "WindowsCompatibility/Physx.h"

class DebugRenderer {
protected:
	NxPhysicsSDK* physicsSDK;
	NxScene* scene;
	NxDebugRenderable* debugRenderable;
	bool enabled;

protected:
	void SetupColor(NxU32 color);
	void PrintError();

public:
	DebugRenderer();
	virtual ~DebugRenderer();
	void Init(NxPhysicsSDK* physicsSDK, NxScene* scene);
	void SetParameterEnabled(NxParameter visualizeParam, bool enabled);
	bool GetParameterEnabled(NxParameter visualizeParam);
	void SetScale(float scale);
	void Update(NxScene* scene);
	void Draw();

	inline void SetEnabled(bool enabled) { this->enabled = enabled; }
	inline bool GetEnabled() const { return enabled; }
};

#endif //DEBUGRENDERER_H
